#include<bits/stdc++.h>
using namespace std;
int v[100005];
int p[100005];
int d[100005];
int a[100005];
int cnt[100005];
int main(){
    freopen("detect.in","w",stdin);
    freopen("detect.out","r",stdout);
    int t;
    cin>>t;
    while(t--){
        int n,m,l,V;
        cin>>n>>m>>l>>V;
        int ans=0;
        int f0=1;
        int f1=1;
        int f2=1;
        for(int i=1;i<=n;i++){
            cin>>d[i]>>v[i]>>a[i];
            if(a[i]!=0){
                f0=0;
            }
            if(a[i]>=0){
                f1=0;
            }
            if(a[i]<=0){
                f2=0;
            }
        }
        for(int i=1;i<=m;i++){
            cin>>p[i];
        }
        if(f0==1){
            for(int i=1;i<=n;i++){
                if(v[i]>V)ans++;
            }
            cout<<ans<<" ";
            cout<<m-1<<endl;
            return 0;
        }
        else if(f1==1){
            sort(p+1,p+m+1);
            for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++){
                    if(p[j]>d[i]){
                        double s=(p[j]-d[i])*1.0;
                        double v2=(v[i]*v[i])*1.0;
                        double k=(s*(2*a[i])+v2)*1.0;
                        double v1=sqrt(k);
                        if(v1>V){
                            ans++;
                            break;
                        }
                        cnt[p[j]]=1;
                    }
                }
            }
            cout<<ans<<" ";
            int sum=0;
            for(int i=1;i<=m;i++){
                if(cnt[p[i]]==1){
                    sum++;
                }
            }
            cout<<sum<<endl;
            return 0;
        }
        else if(f2==1){
            sort(p+1,p+m+1);
            for(int i=1;i<=n;i++){
                for(int j=m;j>=1;j--){
                    if(p[j]>d[i]){
                        double s=(p[j]-d[i])*1.0;
                        double v2=(v[i]*v[i])*1.0;
                        double k=(s*(2*a[i])+v2)*1.0;
                        double v1=sqrt(k);
                        if(v1>V){
                            ans++;
                            break;
                        }
                        cnt[p[j]]=1;
                    }
                }
            }
            cout<<ans<<" ";
            int sum=0;
            for(int i=1;i<=m;i++){
                if(cnt[p[i]]==1){
                    sum++;
                }
            }
            cout<<sum<<endl;
            return 0;
        }
        else{
            sort(p+1,p+m+1);
            for(int i=1;i<=n;i++){
                if(a[i]==0){
                    if(v[i]>V)ans++;
                    continue;
                }
                else if(a[i]<0){
                    for(int j=m;j>=1;j--){
                        if(p[j]>d[i]){
                            double s=(p[j]-d[i])*1.0;
                            double v2=(v[i]*v[i])*1.0;
                            double k=(s*(2*a[i])+v2)*1.0;
                            double v1=sqrt(k);
                            if(v1>V){
                                ans++;
                                cnt[p[j]]=1;
                                break;
                            }
                            continue;
                        }
                    }
                }
                else if(a[i]<0){
                    for(int j=1;j<=m;j++){
                        if(p[j]>d[i]){
                            double s=(p[j]-d[i])*1.0;
                            double v2=(v[i]*v[i])*1.0;
                            double k=(s*(2*a[i])+v2)*1.0;
                            double v1=sqrt(k);
                            if(v1>V){
                                ans++;
                                cnt[p[j]]=1;
                                break;
                            }
                            continue;
                        }
                    }
                }
                else if(a[i]>0){
                    for(int j=m;j>=1;j--){
                        if(p[j]>d[i]){
                            double s=(p[j]-d[i])*1.0;
                            double v2=(v[i]*v[i])*1.0;
                            double k=(s*(2*a[i])+v2)*1.0;
                            double v1=sqrt(k);
                            if(v1>V){
                                ans++;
                                cnt[p[j]]=1;
                                break;
                            }
                            continue;
                        }
                    }
                }
                cout<<ans<<" ";
                int sum=0;
                for(int i=1;i<=m;i++){
                    if(cnt[p[i]]==1){
                        sum++;
                    }
                }
                cout<<sum<<endl;
            }
        }
    }
    return 0;
}
